package com.enlorenz.common.geo.analyzer.distance.test;



import java.util.ArrayList;
import java.util.List;

import com.copote.adc.dao.position.PositionServer;
import com.copote.adc.entity.runingEntity.Position;
import com.enlorenz.common.geo.util.DateUtil;
import com.enlorenz.common.geo.util.GeographyUtil;
import com.enlorenz.core.cache.FileMapCache;

public class PosAnaKim {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FileMapCache cache=new FileMapCache("f","f1");
		cache.setFilePath("c:\\test.dat");
		args=new String[3];
		args[0]="7873";
		args[1]="20130802000000";
		args[2]="20130803000000";
		//args[1]="20130819071701";
		//args[2]="20130819071746";
		PositionServer ps=new PositionServer();
		//List<Position> posList=
		
		
		
		List<Position> posList=null;//ps.getAllHisPosition(args[0],args[1],args[2]);
		
		List<Position> tmpList=new ArrayList<Position>(posList.size());
		Position pp=null;
		for(Position p:posList){
			if(null == pp){
				pp=p;
				tmpList.add(p);
			}else{
				if(p.getD_wzsj().equals(pp.getD_wzsj())){
					
				}else{
					tmpList.add(p);
				}
				pp=p;
			}
		}
		posList=tmpList;
		
		System.out.println(posList.get(0).getN_lcjs()+":"+posList.get(posList.size()-1).getN_lcjs());
		
		/*for(Position p:posList){
			System.out.println(p.getD_wzsj());
		}*/
		
		System.out.println("查询日期:"+DateUtil.transStandardDate2EnViewDate(args[1])
			+"~"+DateUtil.transStandardDate2EnViewDate(args[2]));
		int allSize=posList.size();
		System.out.println("位置数量："+allSize);
		int lockPos=0;
		int sd=0;
		int imPos=0;
		int hisPos=0;
		int latePos=0;
		double dis=0;
		double lc=0;
		double allCut=0;
		double allCut2=0;
		Position pre=null;
		Position pre22=null;
		for(Position p:posList){
			if(p.getN_sxbz().equals("1")){
				lockPos++;
			}
			if(Double.valueOf(p.getC_sd())>0.00){
				sd++;
			}
			if(p.getPosType() == 1){
				imPos++;
			}else if(p.getPosType() == 2){
				hisPos++;
			}else if(p.getPosType() == 3){
				latePos++;
			}
			
			if(p.getN_sxbz().equals("1")){
				if(null == pre){
					pre=p;
				}else{
					double cut1=GeographyUtil.computerDistanceFromPoint(pre, p);
					if(pre.getC_sd().equals("0") && p.getC_sd().equals("0")){
						cut1=0;
					}
					
					if(pre.getC_jd().equals("0") ||  pre.getC_wd().equals("0")
							||p.getC_jd().equals("0") ||  p.getC_wd().equals("0")){
						cut1=0;
					}
					
					double cut2=Double.valueOf(p.getN_lcjs())-Double.valueOf(pre.getN_lcjs());
					allCut2+=cut2;
					dis+=cut1;
					/*if(cut1!=cut2){
						System.out.println("C:"+p.getD_wzsj()+":P:"+pre.getD_wzsj()+":Po:"+cut1+":"+"Lc:"+cut2);
					}*/
					if((cut2-cut1)>400){
						System.out.println("C:"+p.getD_wzsj()+":P:"+pre.getD_wzsj()+":Po:"+cut1+":"+"Lc:"+cut2);
						dis+=(cut2-cut1);
					}
					allCut+=cut1-cut2;
					pre=p;
				}
			}
			
			if(null == pre22){
				pre22=p;
			}else{
				if(Double.valueOf(p.getN_lcjs())>=Double.valueOf(pre22.getN_lcjs())){
					lc+=Double.valueOf(p.getN_lcjs())-Double.valueOf(pre22.getN_lcjs());
				}else{
					//System.out.println(p.getN_lcjs()+":"+Double.valueOf(pre22.getN_lcjs()));
				}
				pre22=p;
			}
			
			
		}
		System.out.println("锁星位置数量："+lockPos);
		System.out.println("不锁星位置:"+(allSize-lockPos));
		System.out.println("速度为0的为止："+sd);
		System.out.println("实时位置数量："+imPos);
		System.out.println("历史位置数量："+hisPos);
		System.out.println("延迟位置数量："+latePos);
		System.out.println("锁星点距离："+(int)dis);
		System.out.println("里程计数距离："+(int)lc);
		//System.out.println("里程点距差："+(int)allCut);
	}

}
